﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Texfina.BOQry.Co;
using Texfina.Entity.Co;
using System.Collections;
using Texfina.Core.Common;
using Texfina.Core.Web;
using System.Text;

namespace CO
{
    public partial class wfOrdenCompraBnd : SearchPage //System.Web.UI.Page, 
    {
        string estado;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                chkPendiente.Checked = true;
                btnNuevo.ImageUrl = Constants2.ConstMenuControlValue.BUTTON_NEW;
                WebHelper.LoadListControl2(dbPlanta, BLocal.Local_qry01(), "ds_local", "id_local");
                LlenarGrid();

            }
            registerScript();
        }

        public void registerScript()
        {
            StringBuilder str = new StringBuilder();

            str.AppendLine("$(document).ready(function () {");
            // Indicar al pluging Metadata que los metadatos deberá buscarlos en el atributo class.
            str.AppendLine("$.metadata.setType('class');");

            str.AppendLine("$('table.grid').each(function () {");
            str.AppendLine("var grid = $(this);");

            // Por cada GridView que se encuentre modificar el código HTML generado para agregar el THEAD.
            str.AppendLine("if (grid.find('tbody > tr > th').length > 0) {");
            str.AppendLine("grid.find('tbody').before('<thead><tr></tr></thead>');");
            str.AppendLine("grid.find('thead:first tr').append(grid.find('th'));");
            str.AppendLine("grid.find('tbody tr:first').remove();");
            str.AppendLine("}");


            // Si el GridView tiene la clase "sortable" aplicar el plugin DataTables si tiene más de 10 elementos.
            str.AppendLine("if (grid.hasClass('sortable') && grid.find('tbody:first > tr').length > 10) {");
            str.AppendLine("grid.dataTable({");
            str.AppendLine("bJQueryUI: true,");
            str.AppendLine("iDisplayLength: 25,");
            //str.AppendLine("sScrollY: '100%',");
            
            str.AppendLine("sScrollY: '500px',");
            //str.AppendLine("bPaginate: false,");
            //str.AppendLine("bScrollCollapse: true,");

            str.AppendLine("sPaginationType: 'full_numbers',");
            str.AppendLine("aoColumnDefs: [");
            str.AppendLine("{ bSortable: false, aTargets: grid.metadata().disableSortCols }");
            str.AppendLine("]");
            str.AppendLine("});");
            str.AppendLine("}");
            str.AppendLine("});");

            str.AppendLine("});");

            ScriptManager.RegisterStartupScript(this, this.GetType(), "ScriptRegister", str.ToString(), true);

        } 

        private void Evaluar()
        {

            if (chkPendiente.Checked == true)
            {
                estado = Constants2.ConstEstadoOC.Pendiente;
            }
            else if (chk_nAutoriza.Checked == true)
            {
                estado = Constants2.ConstEstadoOC.nPendiente;
            }
            else
            {
                estado = Constants2.ConstEstadoOC.Autorizado;
            }
        }

        private void LlenarGrid()
        {
            try
            {
                Evaluar();
                //periodo llenar con sesion
                EOrdenCompra objE = new EOrdenCompra();

                objE.Id_periodo = Session[ConstSessionVar.PERIODO].ToString();

                gvList.DataSource = BOrdenCompra.OrderCompra_qry03(objE.Id_periodo, txtIdOrdenCompra.Text, txtProveedor.Text, (ucControlFecha1.Text), (ucControlFecha2.Text), dbPlanta.SelectedValue, estado);

                gvList.DataBind();
            }
            catch (Exception ex)
            {
                //Response.Write(ex.ToString());
            }

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            LlenarGrid();
        }

        protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "Detalle":
                    string Id_ordenco = (string)e.CommandArgument;
                    Hashtable htDatos = new Hashtable();
                    htDatos.Add("Id_ordenco", Id_ordenco);
                    htDatos.Add("in_ventana", "1");
                    Session["htaOcompra"] = htDatos;
                    Response.Redirect("wfOrdenCompra.aspx");
                    break;
                case "cmdadd":
                    string id_oc = (string)e.CommandArgument;
                    Hashtable htDatos1 = new Hashtable();
                    htDatos1.Add("Id_ordenco", id_oc);
                    htDatos1.Add("in_ventana", "1");
                    Session["htaOC"] = htDatos1;
                    Response.Redirect("WfOrdenCompraFactura.aspx");
                    break;
                case "cmdaddFact":

                    string id_ocfac = (string)e.CommandArgument;
                    Hashtable htDatos2 = new Hashtable();
                    htDatos2.Add("Id_ordenco", id_ocfac);
                    htDatos2.Add("in_ventana", "1");
                    Session["htaOCFac"] = htDatos2;
                    Response.Redirect("wfFactura.aspx");

                    break;
            }
        }

        protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
        {
            Session["htaOcompra"] = null;
            Hashtable HtaDatos = new Hashtable();
            Session["htaOcompraNuevo"] = HtaDatos;
            Response.Redirect("wfOrdenCompra.aspx");
        }

    }
}